Systems and methods for uniquely identifying removable media by its manufacturing defects wherein defects includes bad memory or redundant cells or both

ABSTRACT

A system and method for determining media to be exported out of a media library is described. In some examples, the system determines a media component to be exported, determines the media component is in the media library for a specific process, and exports the media component after the process is completed.

CROSS-REFERENCE TO RELATED APPLICATION(S)

The present application is a divisional of U.S. patent application Ser.No. 13/534,070, entitled “SYSTEMS AND METHODS OF MEDIA MANAGEMENT, SUCHAS MANAGEMENT OF MEDIA TO AND FROM A MEDIA STORAGE LIBRARY, INCLUDINGREMOVABLE MEDIA,” and filed Jun. 27, 2012, which is a continuation ofU.S. patent application Ser. No. 12/971,040, entitled “SYSTEMS ANDMETHODS OF MEDIA MANAGEMENT, SUCH AS MANAGEMENT OF MEDIA TO AND FROM AMEDIA STORAGE LIBRARY, INCLUDING REMOVABLE MEDIA,” and filed Dec. 17,2010, which is a divisional application of U.S. patent application Ser.No. 12/648,569, entitled “SYSTEMS AND METHODS OF MEDIA MANAGEMENT, SUCHAS MANAGEMENT OF MEDIA TO AND FROM A MEDIA STORAGE LIBRARY, INCLUDINGREMOVABLE MEDIA,” and filed on Dec. 29, 2009, which is a continuation ofU.S. patent application Ser. No. 12/058,467, entitled “SYSTEMS ANDMETHODS OF MEDIA MANAGEMENT, SUCH AS MANAGEMENT OF MEDIA TO AND FROM AMEDIA STORAGE LIBRARY, INCLUDING REMOVABLE MEDIA,” and filed on Mar. 28,2008, which is a continuation of U.S. patent application Ser. No.11/694,803, entitled “SYSTEMS AND METHODS OF MEDIA MANAGEMENT, SUCH ASMANAGEMENT OF MEDIA TO AND FROM A MEDIA STORAGE LIBRARY, INCLUDINGREMOVABLE MEDIA,” and filed on Mar. 30, 2007, which claims priority toU.S. Provisional Patent Application No. 60/846,663 entitled “SYSTEMS ANDMETHODS OF MEDIA MANAGEMENT, SUCH AS MANAGEMENT OF MEDIA TO AND FROM AMEDIA STORAGE LIBRARY, INCLUDING REMOVABLE MEDIA,” and filed on Sep. 22,2006, each of which is hereby incorporated by reference.

This application is related to the following patents and U.S.applications, each of which is hereby incorporated herein by referencein its entirety: U.S. patent application Ser. No. 09/991,900, filed Nov.23, 2001, entitled METHOD AND SYSTEM FOR SCHEDULING MEDIA EXPORTS, U.S.patent application Ser. No. 10/819,102, filed Apr. 5, 2004, entitledMETHOD AND SYSTEM FOR CONTROLLING A ROBOTIC ARM IN A STORAGE DEVICE,U.S. patent application Ser. No. 10/818,750, filed Apr. 5, 2004,entitled SYSTEM AND METHOD FOR EXTENDED MEDIA RETENTION, U.S. patentapplication Ser. No. 11/313,267, filed Dec. 19, 2005, entitled SYSTEMSAND METHODS FOR IMPROVED MEDIA IDENTIFICATION IN A STORAGE DEVICE, andU.S. patent application Ser. No. 11/313,256, filed Dec. 19, 2005,entitled SYSTEMS AND METHODS FOR CONTAINERIZED DATA STORAGE ANDTRACKING.

BACKGROUND

Data storage systems interact with media libraries in data storage andretrieval operations. Media libraries house and control physical media(magnetic tapes, optical disks, and so on) that is used during storageoperations, such as data backup operations. Libraries are limited in thenumber of media components they are able to hold, in many cases due tothe physical size of the library. Therefore, a data storage system mayneed to transfer media components out of the library that are no longerneeded or useful for data storage (e.g., media components at theirstorage capacity, or media components scheduled for offsite archiving),and bring in new media components for future storage operations.

Data storage systems may employ management systems to track the movementof media components to and from media libraries. Periodically, thesystems transfer “full” or other media components to off site storagelocations. Management systems may track the movement or location ofmedia components used by a data storage system.

The management systems typically rely on policies that instruct themanagement systems as to the location of media components and the timeat which to transfer media components to a determined location. However,the policies may be somewhat inflexible and lack insight into the needsof a data storage system or its policies, and therefore may instruct thelibrary to perform undesirable media component transfers.

Additionally, libraries may look to similarly rigid policies whenordering new media components to be used in the system. Again, typicaldata storage systems, using rigid media component ordering and buyingpolicies, typically do not achieve an optimum balance between the needsof a system and the number of media components coming into the system tomeet those needs. Some media components are expensive, and thus orderingtoo many can be costly. Alternatively, it can be detrimental to thesystem if too few media components are available for a given storageoperation job.

Furthermore, media management systems are not able to control allaspects of media component transfers. Media components are likely to betransferred to off site storage locations operated by other entitiesthan an entity operating the data storage systems and media libraries.Also, media components are purchased from outside vendors. Therefore,the management of media components may stop or be severely limited oncemedia components are not physically within or controlled by the system.

Some types of media, such as removable Universal Serial Bus (USB)drives, may be difficult to uniquely identify. For example, many USBdrives do not contain a serial number or other identifier. Such mediamay also require additional human management. For example, unlike tapelibraries, robotic systems for moving, loading, and tracking USB mediaare not generally available.

The foregoing examples of some existing limitations are intended to beillustrative and not exclusive. Other limitations will become apparentto those of skill in the art upon a reading of the Detailed Descriptionbelow.

These and other problems exist with respect to media management systems.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating an example of locations thathouse media components and the flow between such locations.

FIG. 2 is a block diagram illustrating an example of a data storagesystem.

FIG. 3 illustrates an example data structure that may comprise examplesof the system.

FIG. 4 is a flow diagram illustrating an example life cycle of a mediacomponent.

FIG. 5 is a process flow illustrating steps performed by the systembefore transferring media components out of a media library.

FIG. 6 is a process flow illustrating automatic recall and export of amedia component.

FIG. 7 is a process flow illustrating steps performed by the system inpurchasing new media components.

FIG. 8 is a block diagram illustrating components of a system forverifying recalled or exported media components.

FIG. 9 is a flow diagram illustrating a routine for verifying recalledmedia components.

FIG. 10 is a flow diagram illustrating an example of using USB media.

FIG. 11 is a flow diagram illustrating an example of automaticallygenerating a device identifier based on characteristics of the device.

FIGS. 12A-12G illustrate representative computer displays or web pagesdisplayed by the system in some embodiments.

In the drawings, the same reference numbers and acronyms identifyelements or acts with the same or similar functionality for ease ofunderstanding and convenience. To easily identify the discussion of anyparticular element or act, the most significant digit or digits in areference number refer to the Figure number in which that element isfirst introduced (e.g., element 110 is first introduced and discussedwith respect to FIG. 1).

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains materialthat is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosures, as it appears in the Patent and TrademarkOffice patent files or records, but otherwise reserves all copyrightrights whatsoever.

DETAILED DESCRIPTION

Examples of the technology are concerned with systems and methods thatmanage, control, or facilitate the management or control of media to andfrom media storage libraries. Although described in connection withcertain examples, the system described below is applicable to and mayemploy any wireless or hard-wired network or data transfer system thatstores and conveys data from one point to another, includingcommunication networks, enterprise networks, storage networks, and soon.

Examples of the technology are directed to systems and methods thatconsider the needs, characteristics, or other attributes of a datastorage system in the management of media components in a media storagelibrary. In some examples, the system may retrieve a media componentfrom an off site storage location, transfer the media component to amedia library, and provide a media library operator or automated librarymanagement system with information about the retrieved media component.In some examples, the system may consider the performance of a datastorage system using the media library in determining how many mediacomponents to transfer into the media library. In some examples, thesystem verifies media components that are transferred into a medialibrary from off site locations.

Various examples of the invention will now be described. The followingdescription provides specific details for a thorough understanding andenabling description of these examples. One skilled in the art willunderstand, however, that the system may be practiced without many ofthese details. Additionally, some well-known structures or functions maynot be shown or described in detail, so as to avoid unnecessarilyobscuring the relevant description of the various examples.

The terminology used in the description presented below is intended tobe interpreted in its broadest reasonable manner, even though it isbeing used in conjunction with a detailed description of certainspecific examples of the system. Certain terms may even be emphasizedbelow; however, any terminology intended to be interpreted in anyrestricted manner will be overtly and specifically defined as such inthis Detailed Description section.

Suitable System

A block diagram 100 illustrating some of the locations associated withmedia storage and the flow between such locations is shown in FIG. 1. Indiagram 100, media components, such as magnetic tapes, optical disks,and other removable storage media, may be located in media library 110.Media library 110 may contain storage for multiple physical media andmechanisms (such as pickers, grippers, automated arms, and so on) thatassist in handling and moving the media components around the library110.

Media components, such as tapes, may travel between media library 110and any or all locations shown in FIG. 1. For example, the system maybackup data to a media component, such as a magnetic tape, and schedulea transfer of the tape to offsite storage location 130. Such transfer tooffsite storage may be performed for a variety of reasons. In thisexample, the system tracks the tape's location from the library 110 towhen the tape is in transit 124, to the offsite storage location 130.Also, the system may track a tape from storage location 130 back to thelibrary 110. Additionally, the system may track new media componentsfrom an outside supplier 140, to the library 110, or even in transit 122from the outside supplier 140. Furthermore, the system may track mediacomponents as they leave the system 126 and are removed and eitherdisposed, recycled, or otherwise destroyed at location 150. The assignedstorage location can be any facility that stores or archives objects andthe transit can refer to any method of moving the media component, suchas a common courier, overnight delivery service, and so on. A blockdiagram illustrating an example data storage system is disclosed in FIG.2. A data storage system 210 is connected to media library 110, and to agraphical user interface 220, such as an interface available viacomputing system 222. The data storage system may be a stand alonesystem or may be part of a complete data backup and storage system. Thedata storage system 210 may be connected to the library 110 via a fixedconnection 242, a wireless connection 241, or via a network 240 (such asthe Internet, a private LAN, and so on). Other system components mayalso interact with the data storage system 210 via the network 240, suchas systems at off site storage locations 130, systems at tape vendors140, and so on.

As discussed above, the library 110 may contain multiple mediacomponents 232, such as magnetic tapes, optical disks, USB drives, flashmemory (or other solid state/semiconductor memory) drives, and so on.The library may also include or be connected to a receptacle orimport/export slot 234, whereby media components, such as a tape 270,may be exported from the library or be received to be entered into thelibrary. In some embodiments, media components may be manually added toor removed from the media library, such as by connecting or removing aUSB drive 275. Alternatively or additionally, one or more USB drives 275may couple to other systems, for example, to system 210, the computer222, etc. While an automated library is generally discussed herein,aspects of the invention apply equally to other store systems, forexample, direct attached storage (DAS), network attached storage (NAS),storage area networks (SAN), etc.

The data storage system 210, via the computing system 222, may comprisean administration component 238 and/or an automation component 236. Anoperator or administrator of the media library, via the computing system222, may use components 236 and 238 to implement policies, verify mediacomponents within the library, or perform other management functionsdescribed below. The computing system may also include a verificationsystem 260, comprising a scanner 262 or other automated data capturedevice (e.g. bar code reader/scanner, radio frequency identification(RFID) reader, audio recorder, etc.). The verification system will bediscussed in greater detail herein.

Computing system 222 may be a personal computer or workstation, havingone or more processors 240 coupled to one or more user input devices 242and data storage devices 244. The computer is also coupled to at leastone output device such as a display device 246 and one or more optionaladditional output devices 248 (e.g., printer, plotter, speakers, tactileor olfactory output devices, etc.). The computer may be coupled toexternal computers, such as via an optional network connection 250, awireless transceiver 252, or both.

The input devices 242 may include a keyboard and/or a pointing devicesuch as a mouse. Other input devices are possible such as a microphone,joystick, pen, game pad, scanner, digital camera, video camera, and thelike. The data storage devices 244 may include any type ofcomputer-readable media that can store data accessible by the computer222, such as magnetic hard and floppy disk drives, optical disk drives,magnetic cassettes, tape drives, flash memory cards, digital video disks(DVDs), Bernoulli cartridges, RAMs, ROMs, smart cards, etc. Indeed, anymedium for storing or transmitting computer-readable instructions anddata may be employed, including a connection port to or node on anetwork such as a local area network (LAN), wide area network (WAN) orthe Internet (not shown in FIG. 2).

In some cases, data storage system 210 contains a media managementcomponent 212, data files 214 stored in a database 213 or memory, and ajob management component 216. The media management component may controlthe media used in backup operations, and also may control the exportingof media from the library or ordering/purchasing of media from anoutside vendor. System 210 may use routines or other processes stored indata files when performing such controls or operations. Although notshown, the system may also control these functions, or part of thesefunctions, within components 236 or 238 of computing system 222.

Data files 214 may be any typical data files, such as database files,relational database tables, flat files, and so on. FIG. 3 illustrates anexample data structure 300. Data structure 300 may store data in fieldsor records 312-318, such as system wide data related to when media is tobe exported 312, when media is to be purchased 314, where media is to beexported 316, how much media is to be purchased 318, when media is to bearchived off site, when media is to be discarded, and so on.Additionally, data structure 300 may also store other system information320, such as information related to why certain media components are inthe library, information related to the history of backup operationalperformance, and so on. For example, data structure 300, or othersimilar data files, may store applications related to the routinesillustrated in the below Figures.

While not shown, this data structure, or a separate one, may includedata specific to a type of media component, such as a particular tape.Some media, such as the USB drives 275, lack specific serial numbers,and thus the system provides an identifier, such as a unique trackingnumber, with respect to each USB drive, as described below. As with themedia management component, some or all of the data files may be storedwithin in the data storage system 210, the computing system 222, orboth. Job management component 216 manages backup operations and otherprocesses.

While the term “field” and “record” are used herein, any type of datastructure can be employed. For example, relevant data can have precedingheaders, or other overhead data preceding (or following) the relevantdata. Alternatively, relevant data can avoid the use of any overheaddata, such as headers, and simply be recognized by a certain byte orseries of bytes within a serial data stream. Data structures may conformto conventions of object oriented programming and/or to other types ofprogramming techniques. Any number of data structures and types can beemployed herein.

A flow diagram illustrating a life cycle of a media component is shownas routine 400 in FIG. 4. These flow diagrams do not show all functionsor exchanges of data, but instead they provide an understanding ofcommands and data exchanged under the system. Those skilled in therelevant art will recognize that some functions or exchange of commandsand data may be repeated, varied, omitted, or supplemented, and other(less important) aspects not shown may be readily implemented.

At step 410, the system purchases or receives a new media component. Themedia component may be, for example, a magnetic tape used to storebackup information during a data backup operation. At step 420, thesystem transfers the newly purchased tape to a media library, such asmedia library 110. In step 430, the system performs backup or storageoperations and writes data onto the tape. In step 440, after a certainpredetermined delay, the system transfers the tape out of library 110and to an off site storage location. In step 450, the tape remains inoff site storage until needed by library 110, such as for a restoreoperation or during standard rotation of backup tapes. In these cases,in step 460, the tape is transferred back to library 110, and the systememploys the tape as needed for storage operations. Once the storageoperations are completed, the system transfers the tape back to the offsite storage location. At a predetermined life cycle end for the tape,the system, in step 470, removes the tape from the system.

As discussed with respect to FIG. 4, a media component travels betweenmany different locations during a component's life cycle. Implementingadvanced management controls and functions, as discussed in greaterdetail below, allows a system or administrator to more effectivelymonitor and control media, further reducing errors, delays, or otherproblems that may exist in such data storage systems. In some cases, theeffective management of life cycles of media components enables datastorage systems to complete backup and/or restore operations withinprescribed timelines (e.g., backup windows) and with fewer errors.

Recall Media Functions to Automate Archive Media Retrieval

As discussed above, the system may use information related to a mediacomponent before making decisions about exporting or recalling a mediacomponent.

A process flow or routine 500 performed by the system 210 beforetransferring media components out of a media library is illustrated inFIG. 5. In step 510 of the routine 500, the system 210 (or user of thesystem, such as a system administrator) determines that a tape or othermedia component is eligible to be transferred out of library 110 to analternate storage location, such as a location off site. At step 520,the system compares the age of the tape with predetermined time rules orpolicies. For example, the system may have a global policy of exportingall tapes over x months old out of the library to an off site location,or to an auxiliary media library. If the tape meets a time criteria, theroutine moves to step 540, else the routine moves to step 530, and thetape remains in the media library. At step 540, the system looks to theuse of the tape, and determines if the tape is involved in a restore orother process within the system. If the tape is not involved in anysystem processes, the routine moves to step 550, else the routine movesto step 530, and the tape is kept within the library. At step 560, thesystem reviews information regarding an intended use of the tape.

For example, the system 210 may have transferred or imported to thelibrary 110 a tape received from the off site location 130 into thelibrary in order to perform a restore operation using data from thetape. Often, the tape may be older than other tapes in the library(i.e., would meet the time criteria discussed above under step 520), andabsent other knowledge, the system (or a system administrator) maytransfer the tape back out of the library before a restore operationoccurs. However, as shown in step 550, the system may review informationrelated to the intended use of the tape and decide to keep the tapewithin the media library based on the information. In some cases, theinformation may be about the system's purpose for the tape (such as arestore operation). Alternatively or additionally, the information maybe about the data contained on the tape.

Referring back to step 550, when the routine determines the tape is notinvolved in any processes, the routine to proceeds to step 560, and thesystem transfers the tape off site. However, if the tape is involved ina process (or the system receives similar information), the system, atstep 530, may perform an action to ensure the tape remains in the medialibrary.

The system may send an alert to an administrator (such as to theadministrator's email address) listing media not to be exported out ofthe library. Other alerts are of course possible, such as text messages,prerecorded voice messages, facsimile messages, and so on, all of whichare encompassed within “alerts” or “messages” noted herein. In somecases, the system generates a report (such as a daily or weekly report)listing media not to be exported. The system may flag the media itself,such as providing an alert or indication to a media component's housing.

The system may also send an alert or message when transferring a tape.In such cases, the alert may indicate the reason for the transfer, ormay contain other information that describes the content of the tape,the reason of the tape's location, the reasons for the timing of thetransfer, and so on. The system may send an alert before transferring orrecalling a tape, during, or soon afterwards. For example, the systemmay send an alert when the system transfers a tape from the library toan off site location, when system recalls a tape from the off sitelocation to the library, when the tape transfers a tape from one libraryto another, and so on.

Alternatively or additionally, the system may perform parts of lifecycle 300 and routine 400 automatically. A process flow or routine 600illustrating automatic recall and export of a media component isillustrated in FIG. 6. That is, the system 210 may perform some or allof the steps without the need for an administrator, or after a singleinput or action by the administrator.

For example, in step 610, the system receives a user input or other suchinformation (e.g., automatically generated recall flag) indicating aneed to recall a media component from an off site storage location. Instep 620, the system may automatically identify the media component tobe recalled (such as determine the media component's ID or serialnumber). The system, in step 630, may then automatically identify thelocation of the media component, such as from the appropriate datastructure field stored in database 213. If the identified mediacomponent is at an off site location, the system, in step 640, mayautomatically send an email or other message to the appropriate off sitestorage location containing the media component. Once a media componentis recalled, the system 210, in step 650, may automatically acknowledgereceipt of or import in of the media component within the library 110(as explained below). In step 660, the system may automatically note arecovery process using the media component has occurred or is complete,and, once the recovery processed has occurred, in step 670,automatically send the media component back to the off site storagelocation.

Alternatively or additionally, the system may automatically generatereports or other information to send with media components. For example,in step 670, the system may prepare a media component for shipment backto an off site media component storage facility. The system mayautomatically generate a report listing the tape, such as a report in aformat desired by the storage facility and containing informationdesired by the storage facility. Also, the system may automaticallygenerate a shipping label or other materials used in shipping the tape.The system may also automatically generate an alert to the storagefacility indicating an incoming exporting of the tape. The system mayalso automatically alert a carrier to pick up the tape. In other words,the system may automatically generate and facilitate the preparation,shipping, and management of media components to be exported.

Automated Media Prediction, Ordering and Reporting

As discussed above, a system capable of understanding and/or predictingfuture data storage needs may be able to achieve greater levels of datastorage accuracy, may complete storage operations more quickly, and/ormay provide more efficient backup or restore operations.

A process flow illustrating a routine 700 performed by the system inpurchasing new media components is described in FIG. 7.

In step 710, the system begins the routine 800 to determine a need toorder and/or purchase media components (such as tapes) for a medialibrary, such as media library 110. In step 720, the routine may look tothe number of new or unused tapes already contained in the library, andif the number is above a predetermined threshold, proceed to step 740,else proceed to step 730. Alternatively or additionally, the system mayskip step 720. In these cases, the system may have a policy thatinstructs the system to order a predetermined number of tapes,regardless of how many tapes are already contained in the library 110.

At step 730, the routine ends and new tapes are not purchased. At step740, the system may look to characteristics of a data storage systememploying media library 110, and determine that the number of tapes inthe library 110 is below a number expected to be needed for futuresystem operations.

For example, the system 210 may determine that there are ten unusedtapes to be used in a backup operation to occur on the first Fridayafter the end of a company's fiscal year. Although the system generallyuses eight tapes for Friday backup, the system may refer to the historyof backup operations and determine that backup occurring soon after theend of the fiscal year generally use fifty percent more tapes thannormal backup. Using this information, the system automaticallydetermines that twelve tapes will be needed for the upcoming Fridaybackup, and orders two extra tapes. Therefore, using context informationfrom the data storage system, the system may be able to avoid anunnecessary delay in backup operations due to a shortage of physicalmedia.

Referring back to routine 700, at step 740, if the routine determinesthat enough tapes are in the library to satisfy a predicted need fortapes, the routine proceeds to step 730, and ends. If there are fewertapes than predicted, the routine proceeds to step 750, and performs anaction to purchase additional tapes.

The system 210 may perform actions in addition to these noted above. Forexample, the system, may alert an administration to purchase additionaltapes (such as by sending an automatic, scripted email to theadministrator's email address). Alternatively, the system mayautomatically order and/or purchase additional tapes, and may alert theadministrator of any orders or purchases. The system may alsoautomatically store any incoming (ordered or purchased) media componentsidentifications, such as media component IDs, serial numbers,corresponding bar codes, and so on.

Additionally, the system 210 may update the history of backup operationsafter performing actions. The system may redefine rules or policiesafter one order, a number of orders, a predetermined pattern of orders,and so on. The system may alert an administrator when rules or policiesare updated. Additionally or alternatively, the system may generateproposed rules or policies based on predicted ordering or purchasingbehaviors. The system may then send an alert, report, or othernotification to be approved by an administrator. In these cases, thesystem may be constantly monitoring and updating its policies withrespect to the flow of new media components into the library.

The system 210 may look to a number of sources in predicting the numberof media components likely to be needed in storage operations. Forexample, the system may look to context information such as calendar orhistorical information, user information (such as company historyinformation), and so on. The system may look to recent backupoperational information (such as information related to trends in recentmedia component needs), may look to error information (such asinformation describing failed or erroneous backup operations), may lookto global trend information about backup operations performed at anumber of different and separate data storage systems, and so on.

Retrieved Media Verification and Confirmation Systems

Referring back to FIG. 2, computing system 222 (or, alternatively, datastorage system 210) may also contain a verification system 260 thatchecks and verifies media components as they enter (or exit) the medialibrary 110. For example, the verification system 260 may contain a handheld bar code reader 262 or other type of data capture device thatidentifies entering media components (such as by scanning a bar code onthe media component). The verification system 260 may then look to areport or other file (such as an emailed list of requested mediacomponents) that lists requested media components and verify that themedia component is on the report. If the media component is not on thereport, the verification system may perform an action to determine theproper location for the media component. The verification system mayautomatically verify entering media components, or a media libraryadministrator may perform the verification, such as with scanner orreader 262.

A block diagram illustrating components of a system for verifyingrecalled or exported media components is shown in FIG. 8. The system maybe wirelessly connected to library 110 and the data storage system 210via a LAN 810 or other network, although a wired connection may beemployed. The verification system 260 may include a scanner 262, such asa bar code scanner in this example. The bar code scanner may be usedwith a media component report, such as report 820 illustrated in FIG. 8.The report 820 may contain machine readable information 822 (such as barcodes, media IDs, or other machine readable indicia or devices (likeRFID tags)) and human readable information 824 (such as descriptions ofmedia components). An administrator may use the scanner 262 to obtaininformation from the report 820 via the bar codes 822. Further detailswith respect to verifying media components are discussed with respect toFIG. 9.

A flow diagram illustrating a routine 900 for verifying recalled mediacomponents is shown in FIG. 9. In step 910, the system may request mediacomponents (such as tapes) from an off site storage location (such as amedia storage facility). Before sending tapes to the system, in step920, the off site location may generate a report 820 containing machinereadable information 822 and human readable information 824 for thetapes. Alternatively or additionally, the report may only contain thehuman readable information 824, and the system may generate a machinereadable report using the information 824. Also, the system may generatea report when requesting media components. The system, in step 930,receives the requested tapes and corresponding report 820. In step 940,the system, via an administrator, scans barcodes on the tapes andbarcodes 822 on the report 820 (or on a system generated report).Alternatively or additionally, the system may import the tapes to thelibrary and a component of the library may scan the tapes.

In step 950, the system compares the scanned bar codes from therequested tapes with the scanned bar codes of a corresponding report. Instep 960, the system determines if the received tapes are the same asthe tapes contained in the report. If the tapes are the same, theroutine 900 proceeds to step 970, else to step 980. In step 970, thesystem may send a confirmation message or other alert, and end. In step980, if the system determines that the comparison of requested tapes torecalled tapes (or, of the received tapes to the tapes listed on acorresponding report), the system may send a message or perform anaction identifying the error and/or requesting a correction.

The system, in step 980, may automatically request an off site locationto correct a tape request. The system may send information related tothe comparison in step 960. For example, if the system receives tentapes from Iron Mountain, and eleven tapes are listed on an accompanyingreport, the system may automatically transmit a request for the missingtape. The request may include information related to the verified tentapes and the one missing tape. The system may also transit a messagerequesting a refund for an erroneous shipment, or may request a futurecredit. Additionally, should a received tape not be a tape requested bythe system, the system may automatically generate shipping materials andmay automatically alert a carrier to ship the tape back to the off sitestorage location.

In some cases, the system may verify the accuracy of a shipment of newlypurchased tapes. The system may compare received tapes with an invoice,report, or other accompanying documentation, and determine the accuracyof the shipment, as described in step 960. If there is a discrepancy,the system may alert a vendor of the tapes to send any missing tapes, torequest a refund, to request additional tapes, and so on. The system maygather data from a common courier to track locations of tapes in transitand provide a graphical user interface to depict currently reportedlocations of tapes in transit.

In some cases, the system described above may be used with respect torecalling and exporting data, in place of media components that storedata. For example, in a recall operation, an off site storage locationmay operate by reading data from one of the stored tapes and onlytransfer the read data (such as electronically transfer) to the library110 or directly to the data storage system 210. In these cases, thesystem may recall large amounts of electronic data, and store such datain a large buffer or other readily accessible storage. However, storinglarge amounts of recalled data may compromise the local disk space of adata storage system and the system may experience similar problems asthose discussed above. Therefore, the system may use the methodsdescribed above to similarly make decisions with respect to the exportand recall of data as well as media components that store data.

Removable Storage Devices

Many types of media include unique identifiers or serial numbers thathelp track that media throughout the system. However, certain removablestorage devices, such as removable USB drives, flash memory drives, andso forth, may lack such a unique identifier. Thus, in some embodiments,the data storage system generates an identifier for removable media thatdoes not already contain a unique identifier. For example, one type ofidentifier is an on-media label (OML). The OML may be stored on thedrive as data, a user may be prompted to write the OML on the outside ofthe drive, or both. The OML may also contain additional information,such as a hash value that identifies the drive. For example, when thesystem 210 first detects a new USB device 275, the system providescertain data such as the creation time when the drive was first added tothe media library, and one or more screens to prompt the user to inputother data, such as a friendly name for display to a user, or otherinformation. A friendly name could be, for example, a text string thatis easy for a user to remember, such as “Joe's Removable Disk.” When themedia is needed, the data storage system may prompt the user bydisplaying the friendly name in a request to the user, for example,“please insert Joe's Removable Disk.” Other information that may bestored and/or requested, can be a password or key value, owner/locationthat indicates an origin of data to be stored on the device or who isresponsible for the device (such as a department within a company), typeof compression/encryption, dates for archiving, disposal or otherlifecycle management dates, and so forth. In some embodiments, otherinformation may be used as a seed to produce a unique identifier, suchas the time of day that the device is first introduced to the system orthe MAC address of the network card of a computer that first identifiesthe device. Those of ordinary skill in the art will recognize thatcommon principles of digital rights management (DRM) can be applied ingenerating a unique identifier.

As explained below, when a removable device (or drive) is inserted, themedia library determines if the drive has been seen before, eitherautomatically by reading the OML stored on the device or by prompting auser to enter the OML from the outside of the drive. The media librarymay contain information about each removable device as well as accesscontrol information that determines how the device may be used. Forexample, the access control information may specify that unknown devicescannot be used to store backup data, or that data cannot be copied froman unknown device to other storage devices tracked by the media library.The access control information may also specify what types of backupdata can be stored on the device. For example, keywords may be used toprevent data containing the word “confidential” from being backed up toa USB drive.

A flow diagram illustrating a routine 1000 for handling removable mediais shown in FIG. 10. In step 1005, the system 210 detects the insertionof a removable media drive. For example, the system may be informed byan operating system that a USB drive has been inserted. In step 1010,the system attempts to read the on-media label or other identifier ofthe removable drive. The system may read the on-media label stored onthe drive itself, or may prompt the user to input an on-media labelwritten on the outside of the media. In step 1015, if an on-media labelwas found, then the system continues at step 1025, else the routinecontinues at step 1020.

In step 1020, the system 210 creates a new on-media label. For example,the system may refer to a store table that lists sequentially numberedon-media label values for previously established removable drives, andthen simply generates the next sequential on-media label value for thenew drive. Alternatively or additionally, the system may prompt the userto input an on-media label, which the system checks to confirm is notduplicative of any on-media label values already existing within thesystem. In an alternative embodiment, the system randomly generates anon-media label value, and again confirms that the randomly generatedvalue is not duplicative of any existing values before applying thevalue to the new drive. Further, as described below, the drive itselfmay be used to uniquely generate an on-media label for that drive basedon unique physical characteristics of the drive.

In step 1025, the system loads information related to the on-medialabel, such as the creation time, friendly name, and access controlinformation associated with the drive. In step 1030, the system performsany steps related to authorizing the drive for desired actions based onthe access control information associated with the drive. Variousprocesses may be employed in step 1030 such as requesting and checking apassword associated with the user or the particular removable drive,determining whether the user has appropriate privileges with respect tothat drive, whether operations being requested for that drive arepermitted (e.g., read privileges may be permitted, but not write), andso forth. Further, the system 210 may analyze data stored on theremovable drive, index that data, and then compare an index of that datawith certain keywords stored on the system. For example, the system maystore one or more lists of words associated with privileges for one ormore users, departments/groups, or individual drives such that if any ofthe words are found stored on the drive, then the system may prohibit orrestrict one or more operations or privileges. Some simple examples arewhere base users may not view any documents containing the words“confidential,” where only certain officers or executives of a companymay view documents including the name of a particular customer or targetcompany to be purchased, only particular individuals or departments(such as human resources) can access documents having terms (or metadatatags) representing personnel records, and so forth. The system 210 mayperform additional initial steps associated with step 1030. For example,the system 210 can compare a date on the drive with a last tracked datestored by the system 210 to determine that the drive contains new datathat needs to be copied from the drive. The system 210 may also store alast size of the data on the removable drive and compare this value tothe drive's current size to determine that new data has been written tothe drive. As another example, the system 210 may move data from thedrive to another location once the drive has reached a threshold amountof data or a certain percentage of the drive's capacity.

In step 1035, the system 210 may then track the removable drive. Forexample, the system may track the drive as generally described above, soas to facilitate recall functions associated with the removable drive,to facilitate automated media prediction, ordering and reporting, aswell as to facilitate retrieved media verification and confirmation. Forexample, the system 210 may determine that the drive is almost full andplace an order for additional drives. The system may also generate areport for an administrator, such as a report indicating how much of acompany's data is stored on removable media. Following step 1035, theroutine ends.

The system may also generate an OML automatically, using characteristicsof the device itself. For example, the location of bad blocks on thedevice can be used as a unique identifier for the device. It is commonfor storage devices to have several bad blocks. The location of the badblocks varies from device to device, such that it is very rare for twodevices to have the same number and layout of bad blocks. The locationof the bad blocks may also act as an input to a hashing function orother mechanism to generate an identifier for the device.

Another example is a memory device in which some blocks may beidentified as unused or bad. It is common during fabrication of hardwarecomponents having several identical subcomponents for some subcomponentsto fail to function correctly. The percentage of subcomponents thatfunction correctly is generally referred to as yield, which is rarely100 percent. Therefore, hardware components are often fabricated withmore subcomponents than necessary to ensure that a needed number ofsubcomponents function correctly. Following fabrication, subcomponentsthat do not function correctly may be identified as inactive.Subcomponents can be identified as inactive by setting certain values infirmware or by blowing one or more electronic fuses (sometimes callede-fuses or anti-fuses). For example, a one gigabyte flash memory drivemay be composed of 10 one-hundred megabyte memory modules. However, theflash memory drive may be fabricated with 12 one-hundred megabyte memorymodules, such that two of the one-hundred megabyte memory modules can bedeactivated to account for poor yield. The configuration of activatedand deactivated subcomponents can be used to generate a uniqueidentifier for the device.

A flow diagram illustrating a routine 1100 for generating an OMLautomatically based on device characteristics is shown in FIG. 11. Instep 1105, the system 210 scans the media, such as after it is firstconnected to the system 210, to determine the available devicecharacteristics. In step 1110, the system 210 identifies uniquecharacteristics of the media, such as the number and layout of badblocks on the media or hardware subcomponents of the media that aredeactivated. In step 1115, the system 210 generates a unique identifierbased on the identified characteristics of the media. For example, thelayout of bad blocks may be used as input to a hashing function toproduce a unique value that identifies the media. Seed values may alsobe used as input to the hashing function, such as the time of day. Instep 1120, the system 210 assigns the generated identifier to the media.Following step 1120, the routine ends.

Referring to FIGS. 12A through 12G, representative computer displays orweb pages will now be described with respect to removable storagedevices. The screens of FIGS. 12A through 12G, and screens discussedbelow, may be implemented in C++ or as web pages under XML (ExtensibleMarkup Language), HTML (HyperText Markup Language) or any other scriptsor methods of creating displayable data, such as the Wireless AccessProtocol (“WAP”). The screens or web pages provide facilities to receiveinput data, such as a form with fields to be filled in, pull-down menusor entries allowing one or more of several options to be selected,buttons, sliders, hypertext links or other known user interface toolsfor receiving user input. While certain ways of displaying informationto users is shown and described with respect to certain Figures, thoseskilled in the relevant art will recognize that various otheralternatives may be employed. The terms “screen,” “web page,” and “page”are generally used interchangeably herein.

When implemented as web pages, the screens are stored as displaydescriptions, graphical user interfaces, or other methods of depictinginformation on a computer screen (e.g., commands, links, fonts, colors,layout, sizes and relative positions, and the like), where the layoutand information or content to be displayed on the page is stored in adatabase. In general, a “link” refers to any resource locatoridentifying a resource on a network, such as a display descriptionprovided by an organization having a site or node on the network. A“display description,” as generally used herein, refers to any method ofautomatically displaying information on a computer screen in any of theabove-noted formats, as well as other formats, such as email orcharacter/code-based formats, algorithm-based formats (e.g., vectorgenerated), or matrix or bit-mapped formats. While aspects of the systemare described herein using a networked environment, some or all featuresmay be implemented within a single-computer environment.

FIG. 12A illustrates a display 1200 generated by the system 210. Thedisplay 1200 contains a list of libraries 1205 and an option 1210 to adda new plug and play disk library. A plug and play (PnP) disk is one typeof removable storage device. FIG. 12B illustrates the display 1200 aftera new removable disk has been added. The new disk 1220 is associatedwith a library 1215 in the list of libraries 1205. FIG. 12C illustratesa configuration option 1230 for configuring the new disk. Additionalremovable disks can be added to the library, as illustrated by FIG. 12D.FIG. 12D contains the first removable disk 1220, and a second removabledisk 1240 added to the library.

FIG. 12E illustrates a properties dialog box 1250 containing some of theconfiguration properties associated with a library. The propertiesdialog box 1250 contains a group of controls 1252 for configuring media.For example, the group of controls 1252 contains a checkbox 1254 thatwhen selected will only allow blank media to be used with the library.The group of controls 1252 also contains a checkbox 1256 that whenselected will only allow media greater than a threshold size to be usedwith the library. The group of controls 1252 also contains a checkbox1258 that when selected will automatically associate an identifier withnew removable media placed in a drive associated with the library.

FIG. 12F contains a display 1260 illustrating operations available forinteracting with a new removable disk drive. For example, one option1261 is to stamp the new media with a label identifying the media to thesystem 210. FIG. 12G illustrates a stamp media dialog box 1270 that ispresented to the user when the stamp media option 1261 is selected. Thestamp media dialog box 1270 contains an option 1272 that when selectedwill generate an identifier based on a labeling scheme defined in theproperties for the library (e.g., under one of the methods noted above).The stamp media dialog box 1270 also contains an option 1274 that whenselected allows the user to enter an identifier to be associated withthe removable disk. The user enters a media identifier in the edit box1276.

CONCLUSION

Systems and modules described herein may comprise software, firmware,hardware, or any combination(s) of software, firmware, or hardwaresuitable for the purposes described herein. Software and other modulesmay reside on servers, workstations, personal computers, computerizedtablets, PDAs, and other devices suitable for the purposes describedherein. In other words, the software and other modules described hereinmay be executed by a general-purpose computer, e.g., a server computer,wireless device or personal computer. Those skilled in the relevant artwill appreciate that aspects of the invention can be practiced withother communications, data processing, or computer systemconfigurations, including: Internet appliances, hand-held devices(including personal digital assistants (PDAs)), wearable computers, allmanner of cellular or mobile phones, multi-processor systems,microprocessor-based or programmable consumer electronics, set-topboxes, network PCs, mini-computers, mainframe computers, and the like.Indeed, the terms “computer,” “server,” “host,” “host system,” and thelike are generally used interchangeably herein, and refer to any of theabove devices and systems, as well as any data processor. Furthermore,aspects of the invention can be embodied in a special purpose computeror data processor that is specifically programmed, configured, orconstructed to perform one or more of the computer-executableinstructions explained in detail herein.

Software and other modules may be accessible via local memory, via anetwork, via a browser or other application in an ASP context, or viaother means suitable for the purposes described herein. Examples of thetechnology can also be practiced in distributed computing environmentswhere tasks or modules are performed by remote processing devices, whichare linked through a communications network, such as a Local AreaNetwork (LAN), Wide Area Network (WAN), or the Internet. In adistributed computing environment, program modules may be located inboth local and remote memory storage devices. Data structures describedherein may comprise computer files, variables, programming arrays,programming structures, or any electronic information storage schemes ormethods, or any combinations thereof, suitable for the purposesdescribed herein. User interface elements described herein may compriseelements from graphical user interfaces, command line interfaces, andother interfaces suitable for the purposes described herein. Screenshotspresented and described herein can be displayed differently as known inthe art to input, access, change, manipulate, modify, alter, and workwith information.

Examples of the technology may be stored or distributed oncomputer-readable media, including magnetically or optically readablecomputer discs, hard-wired or preprogrammed chips (e.g., EEPROMsemiconductor chips), nanotechnology memory, biological memory, or otherdata storage media. Indeed, computer implemented instructions, datastructures, screen displays, and other data under aspects of theinvention may be distributed over the Internet or over other networks(including wireless networks), on a propagated signal on a propagationmedium (e.g., an electromagnetic wave(s), a sound wave, etc.) over aperiod of time, or they may be provided on any analog or digital network(packet switched, circuit switched, or other scheme).

Unless the context clearly requires otherwise, throughout thedescription and the claims, the words “comprise,” “comprising,” and thelike are to be construed in an inclusive sense, as opposed to anexclusive or exhaustive sense; that is to say, in the sense of“including, but not limited to.” As used herein, the terms “connected,”“coupled,” or any variant thereof, means any connection or coupling,either direct or indirect, between two or more elements; the coupling ofconnection between the elements can be physical, logical, or acombination thereof. Additionally, the words “herein,” “above,” “below,”and words of similar import, when used in this application, shall referto this application as a whole and not to any particular portions ofthis application. Where the context permits, words in the above DetailedDescription using the singular or plural number may also include theplural or singular number respectively. The word “or,” in reference to alist of two or more items, covers all of the following interpretationsof the word: any of the items in the list, all of the items in the list,and any combination of the items in the list.

The above detailed description of examples of the technology is notintended to be exhaustive or to limit the invention to the precise formdisclosed above. While specific embodiments of, and examples for, theinvention are described above for illustrative purposes, variousequivalent modifications are possible within the scope of the invention,as those skilled in the relevant art will recognize. For example, whileprocesses or blocks are presented in a given order, alternativeembodiments may perform routines having steps, or employ systems havingblocks, in a different order, and some processes or blocks may bedeleted, moved, added, subdivided, combined, and/or modified to providealternative or subcombinations. Each of these processes or blocks may beimplemented in a variety of different ways. Also, while processes orblocks are at times shown as being performed in series, these processesor blocks may instead be performed in parallel, or may be performed atdifferent times.

The teachings of the technology provided herein can be applied to othersystems, not necessarily the system described above. The elements andacts of the various embodiments described above can be combined toprovide further examples. Any patents and applications and otherreferences noted above, including any that may be listed in accompanyingfiling papers, are incorporated herein by reference. Aspects of theinvention can be modified, if necessary, to employ the systems,functions, and concepts of the various references described above toprovide yet further examples of the technology.

These and other changes can be made to the invention in light of theabove Detailed Description. While the above description describescertain embodiments of the invention, and describes the best modecontemplated, no matter how detailed the above appears in text, theinvention can be practiced in many ways. Details of the system andmethod for classifying and transferring information may varyconsiderably in its implementation details, while still beingencompassed by the invention disclosed herein. As noted above,particular terminology used when describing certain features or aspectsof the invention should not be taken to imply that the terminology isbeing redefined herein to be restricted to any specific characteristics,features, or aspects of the invention with which that terminology isassociated. In general, the terms used in the following claims shouldnot be construed to limit the invention to the specific embodimentsdisclosed in the specification, unless the above Detailed Descriptionsection explicitly defines such terms. Accordingly, the actual scope ofthe invention encompasses not only the disclosed embodiments, but alsoall equivalent ways of practicing or implementing the technology underthe claims. While certain aspects of the technology are presented belowin certain claim forms, the inventors contemplate the various aspects ofthe technology in any number of claim forms. For example, while only oneaspect of the technology is recited as embodied in a computer-readablemedium, other aspects may likewise be embodied in a computer-readablemedium. Accordingly, the inventors reserve the right to add additionalclaims after filing the application to pursue such additional claimforms for other aspects of the technology.

From the foregoing, it will be appreciated that specific embodiments ofthe invention have been described herein for purposes of illustration,but that various modifications may be made without deviating from thespirit and scope of the invention. Accordingly, the invention is notlimited except as by the appended claims.

We claim:
 1. A method of generating identifiers for storage devices, themethod comprising: automatically scanning a data storage device toidentify certain manufacturing defects; identifying characteristicsassociated with the manufacturing defects, wherein the characteristicsassociated with the manufacturing defects are substantially unique tothe storage device; and automatically generating an identifier for thestorage device based on the identified characteristics associated withthe manufacturing defects, wherein the storage device is a magnetic diskdrive, and the identifying comprises identifying bad sectors or portionson the magnetic disk drive, or the storage device is a semiconductormemory drive, and the identifying comprises identifying bad memorycells, enabled redundant memory cells, or both.
 2. The method of claim 1wherein the generating includes performing a hashing function.
 3. Themethod of claim 1, wherein the characteristics associated with themanufacturing defects have a particular number, location or number andlocation, and wherein the generating includes algorithmically combiningthe identified locations or numbers for the defects with known data togenerate the unique identifier or tracking value.
 4. The method of claim1 wherein the identifier is configured for use in tracking the storagedevice.
 5. The method of claim 1 wherein the characteristics associatedwith the defects comprise the location of the defects.
 6. The method ofclaim 1 wherein the characteristics associated with the defects comprisethe quantity of the defects.
 7. The method of claim 1 wherein thegenerated identifier is substantially unique.
 8. A system for generatingidentifiers for storage devices, the system comprising: at least oneprocessor; at least one memory coupled to the processor, wherein thememory stores instructions to be executed by the at least one processorto perform the process of— automatically scanning a data storage deviceto identify certain manufacturing defects; identifying characteristicsassociated with the manufacturing defects, wherein the characteristicsassociated with the manufacturing defects have a particular number,location or number and location, and wherein the characteristicsassociated with the manufacturing defects are substantially unique tothe storage device; automatically generating an identifier for thestorage device based on the identified characteristics associated withthe manufacturing defects.
 9. The system of claim 8 wherein the storagedevice is a magnetic disk drive, and wherein the identifying comprisesidentifying bad sectors or portions on the magnetic disk drive.
 10. Thesystem of claim 8 wherein the storage device is a semiconductor memorydrive, and wherein the identifying comprises identifying bad memorycells, enabled redundant memory cells, or both.
 11. The system of claim8 wherein the generating includes performing a hashing function.
 12. Thesystem of claim 8 wherein the generating includes algorithmicallycombining the identified locations or numbers for the defects with knowndata to generate the unique identifier or tracking value.
 13. The systemof claim 8 wherein the identifier is configured for use in tracking thestorage device.
 14. The system of claim 8 wherein the generatedidentifier is substantially unique.
 15. A tangible, computer-readablestorage medium storing instructions for generating identifiers forstorage devices, comprising: automatically scanning a data storagedevice to identify certain manufacturing defects; identifyingcharacteristics associated with the manufacturing defects, wherein thecharacteristics associated with the manufacturing defects aresubstantially unique to the storage device; and automatically generatingan identifier for the storage device based on the identifiedcharacteristics associated with the manufacturing defects, wherein thestorage device is a magnetic disk drive, and the identifying comprisesidentifying bad sectors or portions on the magnetic disk drive, or thestorage device is a semiconductor memory drive, and the identifyingcomprises identifying bad memory cells, enabled redundant memory cells,or both.